Typescript 如何使用VSCode在非类型脚本文件中使用类型定义
我有一个非ts代码,如下所示:Typescript 如何使用VSCode在非类型脚本文件中使用类型定义,typescript,visual-studio-code,Typescript,Visual Studio Code,我有一个非ts代码,如下所示: // foo.js module.exports = app => { // some logic here } 我想使用typescript定义文件来定义参数app的类型,这样VSCode就会给我intelisense // foo.d.ts interface App { name: string bar: number } 然后在我的js文件中执行jsdocs: // foo.js - updated /// <referenc
// foo.js
module.exports = app => {
// some logic here
}
我想使用typescript定义文件来定义参数app
的类型,这样VSCode就会给我intelisense
// foo.d.ts
interface App {
name: string
bar: number
}
然后在我的js文件中执行jsdocs:
// foo.js - updated
/// <reference path="./foo.d.ts" />
/**
* @param {App} app
*/
module.exports = (app) => {
}
Intelissense停止工作
我做错了什么?您的
foo.js
是一个模块,因此您的声明文件也应该将其描述为一个模块。通过在foo.d.ts
文件的顶部添加import
,您正在声明一个模块-到目前为止还不错
例如,要使用foo
模块,您必须使用import
关键字(假设以下代码位于与foo.d.ts
位于同一目录的文件中):
您的
foo.js
是一个模块,因此您的声明文件也应该将其描述为一个模块。通过在foo.d.ts
文件的顶部添加import
,您正在声明一个模块-到目前为止还不错
例如,要使用foo
模块,您必须使用import
关键字(假设以下代码位于与foo.d.ts
位于同一目录的文件中):
我写的代码不是typescript,所以我不能做
let c:foo.App
我只想使用VSCode intelissense的typescript定义,这没有任何区别。您正在声明一个模块,因此必须导入它才能在js中使用。您可以在这里省略typescript的细节。要点是您必须使用import
关键字。将ts定义文件导入js有什么意义?您没有导入typescript定义。您正在导入javascript模块-请在此处检查js语法:。定义只是用来输入信息的,永远不会被“导入”。你可能误解了我的问题。我有两个文件,一个是我应用程序的typescript类型定义,另一个是我应用程序的代码。我只想将此类型定义用于IntelisSense,我只想让VSCode了解我使用jsdocs处理的变量的类型。我编写的代码不是typescript,因此我无法执行let c:foo.App
我只想将typescript定义用于VSCode IntelisSense这没有任何区别。您正在声明一个模块,因此必须导入它才能在js中使用。您可以在这里省略typescript的细节。要点是您必须使用import
关键字。将ts定义文件导入js有什么意义?您没有导入typescript定义。您正在导入javascript模块-请在此处检查js语法:。定义只是用来输入信息的,永远不会被“导入”。你可能误解了我的问题。我有两个文件,一个是我应用程序的typescript类型定义,另一个是我应用程序的代码。我只想将此类型定义用于IntelisSense,我只想让VSCode了解我使用jsdocs处理的变量类型。
import * as React from "react"
export interface App {
name: string
count: number
}
import {App} from './foo';
/**
* @param {App} app
*/
module.exports = (app) =>
{
console.log(app.count); //VSCode intellisence suggests name and count properties here
}