Man*_*anu 12 javascript typescript visual-studio-code
.js借助 jsDoc 表示法和文件,使用 VSCode 几乎可以从 Typescript 中受益tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"noEmit": true,
"allowJs": true,
"checkJs": true,
"target": "es6",
"resolveJsonModule": true,
"moduleResolution": "node",
},
"include": ["index.js", "./src"]
}
Run Code Online (Sandbox Code Playgroud)
{
"compileOnSave": false,
"compilerOptions": {
"noEmit": true,
"allowJs": true,
"checkJs": true,
"target": "es6",
"resolveJsonModule": true,
"moduleResolution": "node",
},
"include": ["index.js", "./src"]
}
Run Code Online (Sandbox Code Playgroud)
现在,是否可以引用 at 中定义的d.ts接口node_modules?特别是我返回一个“my_dependency.Storage”对象,但我无法使用普通的 javascript 引用它:
/**
* @return {Promise<string>}
*/
const foo = Promise.resolve('hi');
module.exports = foo;
Run Code Online (Sandbox Code Playgroud)
会明白我指的是 Web Storage APIlib.dom.d.ts
import {Storage} from "my_dependency"
Run Code Online (Sandbox Code Playgroud)
///<reference path="node_modules/my_dependency/lib/index.d.ts" />
Run Code Online (Sandbox Code Playgroud)
/**
* @param {Storage} storage
*/
const goo = storage => ...
Run Code Online (Sandbox Code Playgroud)
Man*_*anu 21
正如 @Akxe 提到的,这是从库引用类型的方法:
/**
* @param {import("my_dependency").Storage} storage
*/
const goo = storage => ...
Run Code Online (Sandbox Code Playgroud)
现在,我发现自己一遍又一遍地重复该语句,因此我创建了一个环境别名,如下所示:
类型.d.ts
declare namespace MyProject {
type St = import("my_dependency").Storage; // alias: reference my_dependency.Storage from plain js code
}
Run Code Online (Sandbox Code Playgroud)
索引.js
/// <reference path="types.d.ts"/>
...
Run Code Online (Sandbox Code Playgroud)
src/foo.js
/**
* @param {MyProject.St} storage
*/
const goo = storage => ...
Run Code Online (Sandbox Code Playgroud)
==编辑==
| 归档时间: |
|
| 查看次数: |
5163 次 |
| 最近记录: |