typescript - IDE hittar inte de deklarerade globala typerna
Jag har en global skrivfil där jag definierar mina typer, variabler etc...
Nu är projektstrukturen sådan här:
trunk
typings
index.d.ts
src
Example.ts
Example.d.ts
tsconfig.json
I index.d.ts har jag låt oss säga
declare type userInfo = {
username: string,
password: string,
}
Men i Example.d.ts när jag använder userInfo direkt säger IDE:n att den inte kan hitta namnet medan tsc-kompilatorn inte visar något fel.
declare class Something {
...
getUserInfo: () => userInfo; // <--- this is highlighted red
}
Det roliga är att när jag använder userInfo i Example.ts finns det inga markerade fel.
En annan rolig sak är när jag går till deklarationen så hoppar det till rätt rad i index.d.ts
Jag importerar inte typerna i någon av filerna eftersom de är globala typer.
Min tsconfig-fil ser ut som nedan:
{
"compilerOptions": {
...
"typeRoots": ["./typings"],
...
},
...
}
Vad kan problemet vara?
Svar #1
Du bör inte deklarera typer. Declare är användbart när du vill ange att det finns någon javascript-klass i det globala variabelområdet (och därför kan inte Typescript se den). t.ex. :
declare class UserInfo {...} // typings.d.ts
Nu ska du istället använda vanliga type
type UserInfo = {...} // Example.ts
Ännu bättre, jag skulle föreslå att du använder gränssnitt i ditt fall, eftersom UserInfo-typen verkar vara enkel:
// Example.ts
interface UserInfo {
username: string,
password: string,
}
Känn dig fri att fråga mig om du inte förstår något
