[英]Typescript generic method
我對通用方法有疑問。 此方法不能在本機編譯:
export default function of<T>(support: Support<T>, invoke: Invoke<T>): Renderer<T> {
return new Renderer<T>(support, invoke);
}
我有錯誤:
bundling failed: SyntaxError: /path/Renderer.tsx: Unexpected token, expected "(" (25:26)
> 25 | export default function of<T>(support: Support<T>, invoke: Invoke<T>): Renderer<T> {
| ^
26 | return new Renderer(support, invoke);
27 | }
package.json
"dependencies": {
"fast-csv": "^3.1.0",
"react": "16.8.6",
"react-native": "0.60.3",
"react-native-fs": "^2.14.1"
},
"devDependencies": {
"@babel/core": "^7.5.0",
"@babel/runtime": "^7.5.0",
"@react-native-community/eslint-config": "^0.0.3",
"@types/node": "^12.6.8",
"@types/react": "^16.8.23",
"@types/react-native": "^0.60.0",
"babel-jest": "^24.1.0",
"jest": "^24.1.0",
"metro-react-native-babel-preset": "^0.54.1",
"react-native-typescript-transformer": "^1.2.12",
"react-test-renderer": "16.8.6",
"tslint": "^5.18.0",
"tslint-eslint-rules": "^5.4.0",
"tslint-react": "^4.0.0",
"tslint-react-recommended": "^1.0.15",
"typescript": "^3.5.3"
},
tsconfig.js
"compilerOptions": {
"baseUrl": "./src",
"target": "es6",
"module": "commonjs",
"jsx": "react",
"outDir": "./dist",
"strict": true,
"moduleResolution": "node",
"esModuleInterop": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
如果您能指出我如何解決此問題,那就太好了。
Typescript 2.9增加了對tsx標簽明確指定type參數的支持
為of
,則產生一個錯誤,因為類型不是一個對象。
你可以用這個
export default const OF = <T extends object>(support: Support<T>,invoke: Invoke<T> & { Renderer<T> } ) => {
return new Renderer<T>(support, invoke);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.