小编a13*_*300的帖子

如何获取 TypeScript 类的静态属性的类型?

我有一个带有一些静态方法的辅助类:

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)

但我只对我的记录器方法(这个抽象中的公共助手)感兴趣。

是否可以将类的方法设为类型?如果是这样,其语法是什么?

或者,我的处理方式完全错误吗?

typescript

7
推荐指数
1
解决办法
3538
查看次数

打字稿路径在Express项目中不起作用

我正在尝试使用打字稿路径功能,以便不再需要使用相对导入。

这是我的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)

typescript nodemon ts-node

5
推荐指数
2
解决办法
334
查看次数

扩展 Typescript 中的内置类型

我有以下结构:

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'. …

javascript typescript webdriver-io ts-node typescript3.0

4
推荐指数
1
解决办法
5258
查看次数