TypeScript カスタム型定義ファイルの作成

interfaceで定義



カスタムな型定義ファイルの作成は
*.tsファイルを作成し、
interfaceで定義するのが、
分かりやすいのでないかと思います。

始めに、
local.tsファイルを新規に作成します。
デイレクトリはindex.tsと同じにします。
コードは下記の様になります。



export interface Text {
x: string;
}


次にindex.tsファイルに、
コードを入れます。



import{Text} from "./local"

let foo:Text={x:'text'}

console.log(foo.x)


これをコンパイルして実行します。



npm run build
node ./dist/index.js

[結果]
text


typeで定義



local.tsファイルに
typeで定義する方法もあります。
local.tsに追加するコード次の様になります。



export interface Text {
x: string;
}

export type Person ={
name:string;
}


index.tsファイルのコードを追加、修正します。



import{Text,Person} from "./local"

let foo:Text={x:'text'}

console.log(foo.x)

let James:Person={name:"Tom"}

console.log(James.name)


コンパイルして実行。



[結果]
text
Tom

*.d.tsファイルを作成する方法



*.d.tsファイルで定義する方法もあります。
始めに、
デイレクトリsrc/@typesを作り、
そこでlist.d.tsファイルを作成します。
コードは次の様にします。



declare var sa: any


次にtsconfig.jsonに、typeRootsを追加します。

typeRootsがないとき、
デフォルトでは./node_modules/@typesになっています。

typeRootsに、./src/@typesを入れると、
それだけになってしまうので、
./node_modules/@typesも入れる必要があります。



"compilerOptions": {
...
"typeRoots":["./node_modules/@types","./src/@types"]
},
...


index.tsにコードを追加します。



...
let sa=25

console.log(sa)


コンパイルして実行します。



[結果]
text
Tom
25


以上です。