资料总结 资料总结
首页
go
java
云原生
  • mysql
  • redis
  • MongoDB
  • 设计模式详解
  • 数据结构与算法
  • 前端
  • 项目
  • 理论基础
  • 运营
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

linghui Wu

一只努力学飞的鱼
首页
go
java
云原生
  • mysql
  • redis
  • MongoDB
  • 设计模式详解
  • 数据结构与算法
  • 前端
  • 项目
  • 理论基础
  • 运营
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • html
  • css
  • js

  • typeScript

    • TypeScript总结
      • 接口不能导出多个
        • 多工程管理方式 - lerna的使用
        • Typescript注释
      • 如何单元测试 typescript: ts-jest
  • icon

  • vue

  • vuepress

  • uni-app
  • node

  • node
  • 前端
  • typeScript
wulinghui
2025-02-27
目录

TypeScript总结

# 语法

# 接口不能导出多个

//用index.ts注意会出现`TypeScript type guards and “only refers to a type, but is being used as a value here.”`
//该错是说类型不能直接导出。 只能默认导出一个这种情况不建议使用
import Base from "./lib/Base"
let a = 100;
export default {Base,a};
1
2
3
4
5

建议使用下面的形式:

import Base from 'sxran-tool-interface/lib/base'
export default class XeBase implements Base {
    
}
1
2
3
4

# 多工程管理方式 - lerna的使用 (opens new window)

它优化了使用Git和NPM管理多包存储库的工作流,用来管理多个npm项目,处理每个项目相互之前引用关系,以及每个项目的发布管理。

# Typescript注释 (opens new window)

  • TSDoc 格式标准 (opens new window)
@alpha 指定API项目的发布阶段为“alpha”。它最终打算被第三方开发人员使用,但尚未发布。该工具可能会从公开发布中削减声明。
@beta  指定API项目的发布阶段是“测试版”。它已试验性地发布给第三方开发人员,以收集反馈。API不应在生产中使用,因为它的合同可能会更改,恕不另行通知。该工具可能会修剪公开发布的声明,但可能会将其包含在开发人员预览版本中。
@decorator API消费者使用的.d.ts输出文件中的装饰器。@decorator标签提供了一个变通方法,允许在文档注释中引用装饰器表达式。
@deprecated 此块标签传达API项目不再受支持,可能会在未来的版本中删除。
@defaultValue 如果未明确分配值,此块标签用于记录字段或属性的默认值。
@eventProperty 这表明该属性返回一个事件处理程序可以附加到的事件对象。
@example 示应作为示例展示如何使用API的文档部分。它可能包括一个代码示例。
@experimental 与@beta相同的语义,但由不支持@alpha发布阶段的工具使用。
@inheritDoc 此内联标签用于通过从另一个API项目复制来自动生成API项目的文档。
@internal 指定API项目不打算被第三方开发人员使用。该工具可能会从公开发布中削减声明。
@label 内联标签用于标记声明,以便可以使用TSDoc声明引用符号中的选择器引用它。
@link 内联标签用于创建指向文档系统或一般互联网URL中其他页面的超链接。
@override 对于成员函数或属性,明确表示此定义正在覆盖从基类继承的定义。
@packageDocumentation 用于指示描述整个NPM软件包的文档注释
@param 用于记录函数参数。@param标签后跟参数名称,后跟连字符,后跟描述。
@privateRemarks 开始一段不面向公众的额外文档内容。工具必须从API参考网站、生成的*.d.ts文件以及包含内容的任何其他输出中省略这一整个部分。
@public 指定API项目的发布阶段为“公共”。它已正式发布给第三方开发人员,其签名保证稳定
@readonly 此修饰符标签表示API项目应记录为只读,即使TypeScript类型系统可能另有指示。
@remarks API项目的主要文档分为简短的“摘要”部分,后跟更详细的“备注”部分。
@returns 用于记录函数的返回值。
@sealed 对于类,表示子类不得继承该类。对于成员函数或属性,表示子类不得覆盖(即重新定义)成员。
@see 用于构建可能与当前项目相关的API项目或其他资源的引用列表。
@throws 用于记录函数或属性可能抛出的异常类型。
@typeParam 用于记录通用参数。@typeParam标签后跟参数名称,后跟连字符,后跟描述。
@virtual 对于成员函数或属性,明确表示子类可以覆盖成员。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  • TypeDoc比TSDoc更加简单宽松,工具使用更加简单

  • 完整的示例:

/**
 * Represents a book in the catalog.
 * @public
 */
export class Book {
    /**
     * The title of the book.
     * @internal
     */
    public get _title(): string;

    
    /**
     * The title of the book.
     * @alpha
     */
    public get title(): string;

    /**
     * The author of the book.
     * @beta
     */
    public get author(): string;

    /**
     * The author of the book.
     * 
     * {@inheritDoc Book.author}
     * 
     * @example 
     *  Here's a simple example:
     * @experimental
     * @deprecated Use the new {@link author} method
     */
    public get authorV0(): string;

    /**
     * Determines how the warning will be displayed.
     *
     * @remarks
     * See {@link WarningStyle| the WarningStyle enum} for more details.
     *
     * @defaultValue `WarningStyle.DialogBox`
     */
    warningStyle?: WarningStyle;
    
    
    
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

# 如何单元测试 typescript: ts-jest (opens new window)

他的文档有点问题:应该是这样 npm install jest ts-jest typescript @types/node @types/jest -D

  • 有一项约定,即每个.ts文件都会有一个相应的.spec.ts文件。
编辑 (opens new window)
上次更新: 2023/11/27, 13:54:24
typescript
查看css文件所有的icon

← typescript 查看css文件所有的icon→

最近更新
01
架构升级踩坑之路
02-27
02
总结
02-27
03
语法学习
02-27
更多文章>
| Copyright © 2021-2025 Wu lingui |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式