小编iva*_*kov的帖子

在 TypeScript 中命名抽象类和接口

这个问题存在争议,也没有一致性,所以我想澄清一下打字稿的类、文件名、后缀等的命名标准。我想知道,你在 Typescript 项目中如何命名抽象类、接口以及逻辑组织代码?

可能的解决方案:

对于接口:

  • 以“I”作为前缀
  • 以“Interface”作为后缀
  • 完全不添加任何东西

对于抽象类:

  • 以“摘要”为前缀
  • 像“Base”这样的前缀
  • 一无所有

使用 C# 的示例

public class User : AbstractUser, IUser
Run Code Online (Sandbox Code Playgroud)

Java 和 PHP 中相同

public class User extends AbstractUser implements UserInterface
Run Code Online (Sandbox Code Playgroud)

在打字稿中

export class User extends AbstractUser implements UserInterface
Run Code Online (Sandbox Code Playgroud)

这是基于 C#、Java 和现代 PHP7+ 等语言的框架中使用的常规方法


微软建议添加“Interface”作为后缀,这对我来说是正确的。 https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Interfaces.md#class-types

另一个流行的风格指南建议不要为接口的前缀添加任何后缀,对我来说违反了规则,可读性和整体看起来都是错误的。https://basarat.gitbooks.io/typescript/content/docs/styleguide/styleguide.html#interface

export class User extends AbstractUser implements User
Run Code Online (Sandbox Code Playgroud)

javascript oop naming-conventions node.js typescript

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

在Node中使用Transpile TypeScript的最快方法

为节点转换Typescript的最佳(实时?)方法是什么?

我正在使用WebStorm并在后台运行gulp任务backend:watch来监听更改.因此,当我在WebStorm中点击"保存"时,它确实将TS转换为JS并存储在/build目录下.

我的方法效果很好,但是转换是耗时的 - 每次运行需要两到三秒,秒会变成分钟,依此类推.

有没有办法优化它,一个更好的选择?

  • https://www.npmjs.com/package/ts-node是另一种选择,但我不确定它比我现在拥有的更好.
  • 另外,听说基于Electron的新VisualStudio很好,但它将JS文件保存在同一个位置,对我来说看起来不整洁.

    //////////////////////////////////////////////
    // Backend tasks
    //////////////////////////////////////////////
    
    const appSourceDir = path.join(dir, '/app');
    const appSourceGlob = `${appSourceDir}/**/*.*`;
    const appSourceRelativeGlob = 'app/**/*.*';
    const appCodeGlob = `${appSourceDir}/**/*.ts`;
    const appCodeRelativeGlob = 'app/**/*.ts';
    const appFilesGlob = [appSourceGlob, `!${appCodeGlob}`];
    const appFilesRelativeGlob = [appSourceRelativeGlob, `!${appCodeRelativeGlob}`];
    const appBuildDir = path.join(dir, '/build');
    
    
    gulp.task('backend:symlink', [], function (done) {
      const appTargetDir = path.join(dir, '/node_modules/app');
      // symlink for app
      fs.exists(appTargetDir, function (err) {
        if (!err) {
          fs.symlinkSync(appBuildDir, appTargetDir, 'dir'); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript gulp

6
推荐指数
1
解决办法
1040
查看次数

标签 统计

javascript ×2

node.js ×2

typescript ×2

gulp ×1

naming-conventions ×1

oop ×1