打字稿声明文件无法自动完成

时间:2018-07-09 13:01:52

标签: typescript

我在名为button.tsx的文件中有此文件:

export default function Button(props, children=[])  {
    // something
};

我将button.d.tsx放在其旁边:

declare module 'button' {
    export default function(props:any, children?:HTMLElement[]): any;
}

但是当我开始输入内容时,Visual Studio Code告诉我道具和孩子都是any

import Button from './button';
Button(

我在做什么错?我不想在button.tsx中放入类型定义。我宁愿将其保持为原始ES6。

1 个答案:

答案 0 :(得分:0)

如果您有一个.tsx(或ts)文件,则打字稿编译器将从该文件而不是d.ts中获取函数的定义。这很有意义,因为编译器可能会自己生成定义(这是编译器选项)。

但是由于您使用打字稿编写组件,所以为什么需要额外的定义文件?您可以将类型注释直接添加到tsx中的函数中:

export default function Button(props: any, children:HTMLElement[]=[])  {
    // something
};