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
以上です。