【问题标题】:guid/uuid in Typescript Node.js appTypescript Node.js 应用程序中的 guid/uuid
【发布时间】:2017-10-05 20:47:49
【问题描述】:

我尝试让 uuid (v 3.0.1) 包在 Node/Typescript 应用程序中工作,但我不确定我应该导入什么以及如何使用它。

这是index.d.ts(来自@types/uuid v 2.0.29):

declare namespace uuid {
    interface V1Options {
        node?: number[];
        clockseq?: number;
        msecs?: number | Date;
        nsecs?: number;
    }

    type V4Options = { random: number[] } | { rng: () => number[]; }

    interface UuidStatic {
        (options?: V4Options): string;
        (options: V4Options | null, buffer: number[], offset?: number): number[];
        (options: V4Options | null, buffer: Buffer, offset?: number): Buffer;

        v1(options?: V1Options): string;
        v1(options: V1Options | null, buffer: number[], offset?: number): number[];
        v1(options: V1Options | null, buffer: Buffer, offset?: number): Buffer;
        v4: UuidStatic;
        parse(id: string): number[];
        parse(id: string, buffer: number[], offset?: number): number[];
        parse(id: string, buffer: Buffer, offset?: number): Buffer;
        unparse(buffer: number[] | Buffer, offset?: number): string;
    }
}

declare const uuid: uuid.UuidStatic
export = uuid

我在这里找不到导出的类。

例如,angular2-uuid 中的 index.d.ts 看起来像这样:

export declare class UUID {
    constructor();
    static UUID(): string;
    private static pad4(num);
    private static random4();
}

而且使用起来非常明显:

let id = UUID.UUID();

所以。如何使用(导入和调用)uuid

【问题讨论】:

  • 您对实际包的类型版本错误。确保它们匹配。

标签: node.js typescript uuid guid


【解决方案1】:

是的,这是我项目中的代码:

import { v4 as uuid } from 'uuid';
const id: string = uuid();

注意:安装定义需要运行

npm install --save-dev @types/uuid

【讨论】:

  • 或者只是import { v4 } from 'uuid'; 这解决了我的问题。谢谢!
  • 这不起作用。 Error: 'v4' is not exported by node_modules/uuid/index.js
  • 刚刚在最新版本的uuid模块上重新测试。一切都按预期工作。我建议你在 SO 上开始另一个问题。
【解决方案2】:

根据测试:

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/354cec620daccfa0ad167ba046651fb5fef69e8a/types/uuid/uuid-tests.ts

import uuid = require('uuid');

let uuidv4: string = uuid.v4();

【讨论】:

  • 这行得通!谢谢,但是...有什么方法可以使用import { } from "" typescript 样式吗?
  • 这对 Typescript 最有效。最佳答案是抱怨来自 linter 的任何警告
【解决方案3】:
import * as uuid from "uuid";
const id: string = uuid.v4();

【讨论】:

    【解决方案4】:

    这也适用于我:

    import uuidv4 from 'uuid/v4'
    
    this.projectId = uuidv4()
    

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 2015-01-17
      • 2021-10-08
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多