next@8.1.1より@zeit/next-typescriptを使わずにいけるようになりました。Next プロジェクトルートにtsconfig.jsonを起き以下を設定します。
{
"allowJs": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
}これらは Next 側で強制的に上書きされてしまうので上記のまま使うようにします。
あとはそのままページを.tsxで書いていくだけです。
いくつかの記法が使えない
以下の記法を使うとエラーになります。(babelが対応してない?)
const enumnamespace
注意
declare module '<package-name>' とそれを参照するtypesRootをtsconfig.jsonに設定してしまうと、「そんなモジュールない」というエラーが起きてしまうようです。