我在名为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。
答案 0 :(得分:0)
如果您有一个.tsx
(或ts
)文件,则打字稿编译器将从该文件而不是d.ts
中获取函数的定义。这很有意义,因为编译器可能会自己生成定义(这是编译器选项)。
但是由于您使用打字稿编写组件,所以为什么需要额外的定义文件?您可以将类型注释直接添加到tsx
中的函数中:
export default function Button(props: any, children:HTMLElement[]=[]) {
// something
};