我在哪里可以从库中获取变量的打字稿类型
Where do I get the typescript types of the variable from library
我一直在做一个 react-typescript 项目,在这个项目中我使用了很多外部库,我经常发现自己对这些库使用 any 类型。请看下面的代码进行演示
这是 Fontawesome 图书馆
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import {
faSquare,
} from '@fortawesome/free-regular-svg-icons';
interface IProps {
title: string;
icon: any;
onClick?: () => void;
sx?: { [index: string]: string };
}
const icons ={
title :_,
icon : faSquare
}
对于上面的代码,icon 的类型是什么?其值为faSquare。当我将鼠标悬停在它上面时,类型是 IconDefinition。但是,我不确定在哪里导入它,或者是否可以这样做。
@fortawesome
包嵌入了它们自己的类型,因此 icons.icon
的类型是自动推断的。
在VSCode中,您可以right-click和“转到类型定义”来检查类型。
在你的例子中,faSquare
的类型是 IconDefinition
export interface IconDefinition extends IconLookup {
icon: [
number, // width
number, // height
string[], // ligatures
string, // unicode
IconPathData // svgPathData
];
}
您可以将其添加到您从 @fortawesome/free-regular-svg-icons'
导入的内容中
import {faSquare, IconDefinition} from '@fortawesome/free-regular-svg-icons';
我一直在做一个 react-typescript 项目,在这个项目中我使用了很多外部库,我经常发现自己对这些库使用 any 类型。请看下面的代码进行演示
这是 Fontawesome 图书馆
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import {
faSquare,
} from '@fortawesome/free-regular-svg-icons';
interface IProps {
title: string;
icon: any;
onClick?: () => void;
sx?: { [index: string]: string };
}
const icons ={
title :_,
icon : faSquare
}
对于上面的代码,icon 的类型是什么?其值为faSquare。当我将鼠标悬停在它上面时,类型是 IconDefinition。但是,我不确定在哪里导入它,或者是否可以这样做。
@fortawesome
包嵌入了它们自己的类型,因此 icons.icon
的类型是自动推断的。
在VSCode中,您可以right-click和“转到类型定义”来检查类型。
在你的例子中,faSquare
的类型是 IconDefinition
export interface IconDefinition extends IconLookup {
icon: [
number, // width
number, // height
string[], // ligatures
string, // unicode
IconPathData // svgPathData
];
}
您可以将其添加到您从 @fortawesome/free-regular-svg-icons'
import {faSquare, IconDefinition} from '@fortawesome/free-regular-svg-icons';