在TypeScript .d.ts文件中声明接口并使用JavaScript文件

时间:2017-06-21 15:57:05

标签: typescript-typings typescript2.0

我正在使用Visual Studio Code,并希望在将配置变量声明为普通javascript对象时具有智能感知提示

jsconfig.json

{
    "compilerOptions": {
        "checkJs": true
    },
    "include": [
        "src/**/*.js",
        "types/**/*.d.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}

类型/ index.d.ts

interface Foo {
    a: string;
    b: number;
}

declare var fooConfig: Foo;

的src / app.js

const fooConfig = {
    a: 'hello',
    b: 123
}

我希望在声明使用const fooConfig时,VS代码可能提供关于ab的智能感知,当前结果我收到有关重新声明变量fooConfig <的投诉消息/ p>

P.S。我真的不知道可能性,但我希望有一些intellisense所以我可以轻松声明我的配置变量

请指导 感谢

2 个答案:

答案 0 :(得分:1)

您可以使用JSDoc语法来描述JS文件中的类型:

src / app.js

/** @type {Foo} */
const fooConfig = {
  a: 'hello',
  b: 123
}

它与您项目中的d.ts文件隐式兼容,因此无需“包含”它们,也无需在d.ts文件中声明var。

答案 1 :(得分:-1)

导入界面后,在JS文件中尝试const fooConfig: Foo = {...}。就目前而言,TS是对的,你宣布它两次。