Javascript 如何使typescript从“.d.ts”文件中查找类型批注?
我无法使typescript从Javascript 如何使typescript从“.d.ts”文件中查找类型批注?,javascript,reactjs,typescript,types,Javascript,Reactjs,Typescript,Types,我无法使typescript从.d.ts文件中查找类型批注。 这是我的tsconfig.json文件 { "compilerOptions": { "baseUrl": "./", "paths": { "components/*": [ "src/components/*"
.d.ts
文件中查找类型批注。
这是我的tsconfig.json
文件
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"components/*": [
"src/components/*"
],
"constants/*": [
"src/constants/*"
],
"services/*": [
"src/services/*"
],
"reducers/*": [
"src/reducers/*"
],
"selectors/*": [
"src/selectors/*"
],
"types/*": [
"src/types/*"
],
"pages/*": [
"src/screens/*"
],
},
"target": "esnext",
"module": "commonjs",
"jsx": "react-native",
"noEmit": true,
"strict": true,
"noImplicitAny": false,
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"typeRoots": [
"./src/types"
],
"types": [
"node"
],
},
"include": ["src/**/*.d.ts"],
"exclude": [
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js"
]
}
这里还有一个用法示例。这是src/services/redux/utils.ts
中的一个util函数
export function unpack<T extends Record<string, unknown> | []>(dataState: IDataState<T>, defaultState = {}) {
if (dataState) {
const isBusy = dataState.status === 1;
const payload = dataState.payload ? dataState.payload : defaultState;
return [payload as T, isBusy, dataState.error || null];
}
return [defaultState as T, false, null];
}
typescript会抛出一个错误
找不到名称“IDataState”
我在src/services
中创建了types.d.ts
,并试图从同一目录访问这些类型。
我已经调查了一些关于Stackoverflow的其他问题,但没有一个是对我问题的答案。
我应该向配置中添加什么?您需要在typeRoots编译器选项中指定所有必要的文件,但它没有帮助。我只能在导入时使用它们。但正如我所知,我应该能够在不导入的情况下使用它们。你能提供一个实际声明的示例以及如何使用它们吗?请参阅更新版本!!!您一定误解了
.d.ts
文件的实际用途。我已经按照那篇文章中的说明去做了,但还是没有结果。无论如何,谢谢你的帮助。
interface IDataState<T> {
dateReceived?: number;
dateRequested?: number;
error?: Error;
payload: T | Record<string, unknown>;
requestGuid: string;
status: number;
}