我有一个带有一些静态方法的辅助类:
export default class MyHelper {
private constructor() {}
private static privateMethod() {}
public static publicHelperMethod() {}
}
Run Code Online (Sandbox Code Playgroud)
我有一个使用 publicHelperMethod 的 React 组件,我想确保这个特定方法在我的 props 声明中传递。
我尝试的方法是:
type LoggerMethod = MyHelper.publicHelperMethod;
Run Code Online (Sandbox Code Playgroud)
但这会引发错误,并表示 MyHelper 正被用作命名空间。
我可以使类本身成为一种类型:
type Helper = MyHelper;
Run Code Online (Sandbox Code Playgroud)
但我只对我的记录器方法(这个抽象中的公共助手)感兴趣。
是否可以将类的方法设为类型?如果是这样,其语法是什么?
或者,我的处理方式完全错误吗?
我正在尝试使用打字稿路径功能,以便不再需要使用相对导入。
这是我的tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"outDir": "./dist",
"rootDir": ".",
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"baseUrl": ".",
"allowJs": true,
"paths": {
"*": ["node_modules/*", "src/*"],
"@config/*": ["src/config/*"],
"@controllers/*": ["src/controllers/*"],
"@middlewares/*": ["src/middlewares/*"],
"@models/*": ["src/models/*"],
"@routes/*": ["src/routes/*"],
"@types/*": ["src/types/*"],
"@utils/*": ["src/utils/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules", "firebase-config.json", "webpack.config.js"]
}
Run Code Online (Sandbox Code Playgroud)
这是我的package.json
{
"name": "express-ts-boilerplate",
"version": "0.1.0",
"description": "Express Typescript Boilerplate",
"main": "src/server.js",
"author": "Sriram R",
"scripts": {
"start": "NODE_ENV=production node dist/src/app.js",
"dev": "nodemon src/app.ts",
"build": …Run Code Online (Sandbox Code Playgroud) 我有以下结构:
project
|- types
|- global.d.ts
|- string.d.ts
|- wdio.d.ts
|- src
|- Models
|- Resources
|- Components
|- Extensions
|- string.ts
|- ...
|- tsconfig.json
|- wdio.conf.js
Run Code Online (Sandbox Code Playgroud)
我尝试用函数扩展字符串的原型。到目前为止我尝试了很多方法,我在几个网站上找到了。但要么tsc给我错误,要么 PHPStorm 显示错误消息。
project
|- types
|- global.d.ts
|- string.d.ts
|- wdio.d.ts
|- src
|- Models
|- Resources
|- Components
|- Extensions
|- string.ts
|- ...
|- tsconfig.json
|- wdio.conf.js
Run Code Online (Sandbox Code Playgroud)
我将类的增强添加String到 d.ts 文件中。然后我在一个单独的文件中定义函数的主体。当我在文件中实现它时src/Extensions/string.ts,该tsc命令没有给出错误消息,但 PHPStorm 显示以下错误:
TS2339: Property 'myCustomFn' does not exist on type 'String'. …