material-ui @ nextをインストールした場合は、独自の入力があり、@ types/material-uiをインストールする必要はありません。もしあなたがそうするなら、彼らは多量のエラーを与えるのに矛盾します。しかし、現在ベータ版9はもちろん開発中であり、多くのタイピング問題が発生します。私自身や他の人は、プロジェクトごとにタイピングが堅牢であることを確認するために、各リリースですぐに問題を作り出しています。
現在、ベータ版を使用している場合は、入力に関する問題は発生していません。また、typescriptを使用している場合、あなたはバベルを必要としません。 Typescriptコンパイラはあなたが望む仕様にプロジェクトをビルドします。
Typescriptは、どのようにビルドされているかを理解すると簡単になります。そのハードルの後に残りはシンプルです。
私の場合は、ローカルにインストールされたTypescriptとともに.ts/.tsx拡張子を使用します。ここに私のTSconfigの例は
{
"extends": "./config/base.json",
"compilerOptions": {
"experimentalDecorators": true,
"lib": [
"es6",
"dom",
"es2015",
"es2017"
],
"typeRoots": [
"node_modules/@types",
"node_modules"
],
"types": [
"node", "jest", "lodash", "react",
"react-dom", "react-redux", "redux-logger", "material-ui",
"react-router-dom", "react-router-redux", "react-autosuggest",
"redux", "binary-type-tree", "redux-form",
"tedb", "react-tap-event-plugin", "redux-thunk",
"react-hot-loader", "history", "material-ui-icons"
],
"outDir": "dist"
},
"include": [
"src",
"node_modules/**/*.d.ts",
"node_modules/@types/**/*.d.ts"
],
"exclude": [
"node_modules",
"dist",
"spec",
"webpack"
]
}
であり、これはまだケースですが、リストに要件行う場合ベース
{
"compileOnSave": false,
"compilerOptions": {
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2015",
"module": "es2015",
"moduleResolution": "node",
"strict": true,
"pretty": true,
"jsx": "react",
"sourceMap": true,
"importHelpers": true,
"removeComments": false,
"noImplicitThis": true,
"noImplicitAny": true,
"noEmitOnError": true,
"strictNullChecks": true
}
}
は私のタイプのいくつかは、私がわからないどの"types"
に記載されていることが必要このようなあなたのすべてのタイプ。私はこれがいくつかの助けの元に来てほしい。 package.json "main"
これはちょうど私の設定です"dist/index.js"
"build": "rm -rf ./dist/* && tsc"
の ビルドと"types": "dist/index.d.ts"
を指します。しかし、私はそれがいくつかの問題を理解するのに役立つことを願っています。
[TS wikiの[JavaScriptのタイプチェック]](https://github.com/Microsoft/TypeScript/wiki/Type-Checking-JavaScript-Files)を参照してください。プロジェクトへのtsconfigファイルを作成し、チェックを入力する.jsファイルに@ ts-checkコメントを追加します。 VSCodeは誤ったタイプに関する警告を表示することができますが、ビルドを中断することはありません。ナンセンスではありません。私は個人的に "完全なタイスクリプト"の経験を好みますが、それは間違いなく味の問題であり、ここには真の答えはありません。 – noppa
私の考えはかなり主観的ですが、ビルドで暴走すると、長期的にメンテナンスの難しさに遭遇します。私は 'create-react-app-typescript'を使っていますので、TSビルドのアップグレードについて心配する必要はありません。タイプ不一致の場合、私は通常、 '.d.ts'ファイルを自分自身でハック/パッチするか、それ以外の場合は' any'にキャストします。私は強く、ハイブリッドビルドを維持することがリアルタイムのシンクになると思っています.... – mikebridge