Typescript中的顶级等待和导入



我正在学习Typescript,遇到了一个问题。我想使用import和顶级await,但目前,我一次只能使用一个。

这是我在tsconfig.json中的配置,它允许我使用导入

"target": "ESNext",
"module": "ESNext"

这个允许我使用顶级等待:

"module":"commonjs"

我添加了

"type":"module"

到我的package.json

有什么方法可以让我同时利用这两个功能吗?非常感谢。

我使用Nodejs 16和Typescript 4.5.5

是的,两者都可以使用。以下是帮助您重现成功测试的信息:

Node.js(LTS(版本:

$ node --version
v16.14.0

./package.json:

{
"name": "so-71099311",
"version": "0.1.0",
"private": true,
"description": "",
"type": "module",
"scripts": {
"compile": "tsc",
"start": "npm run compile && node dist/main.js",
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [],
"author": "",
"license": "MIT",
"dependencies": {
"@types/node": "^17.0.17",
"typescript": "^4.5.5"
}
}

./tsconfig.json:

{
"compilerOptions": {
"esModuleInterop": true,
"exactOptionalPropertyTypes": true,
"isolatedModules": true,
"lib": [
"esnext"
],
"module": "esnext",
"moduleResolution": "node",
"noUncheckedIndexedAccess": true,
"outDir": "dist",
"strict": true,
"target": "esnext",
"useUnknownInCatchVariables": true
},
"include": [
"./src/**/*"
]
}

./src/module.ts:

export function greet (name = 'world'): void {
console.log(`Hello ${name}`);
}

./src/main.ts:

import {greet} from './module.js';
const name = await Promise.resolve('Nguyen');
greet(name);

在您的控制台中:

$ cd /path/to/the/directory/where/you/created/these/files
$ npm install
$ npm run start
> so-71099311@0.1.0 start
> npm run compile && node dist/main.js

> so-71099311@0.1.0 compile
> tsc
Hello Nguyen

相关内容

  • 没有找到相关文章

最新更新