在Dart中键入TypeScript中的别名

问题描述 投票:0回答:1

可以在Dart中使用TypeScript中的类型吗?

示例(TypeScript):

export type Speed = 'very slow' | 'slow' | 'normal' | 'fast' | 'very fast';

public getRealSpeed(speed: Speed): number {
    switch(speed) {
       ...
    }

    return 0;
} 

要么

public getRealSpeed(speed: 'slow' | 'fast' | 'unknown'): number {
    switch(speed) {
       //TODO
    }

    return 0;
} 
typescript types dart
1个回答
1
投票

您可以使用Dart枚举执行相同的操作:

enum Speed { verySlow, slow, normal, fast, veryFast; }
int getRealSpeed(Speed speed) {
  switch (speed) {
    case Speed.verySlow: return 1;
    ...
    case Speed.veryFast: return 99;
  }
  return 0;
}

这意味着你必须明确地将字符串值转换为Speed实例,也许使用

const speedByName = {
  "very slow": Speed.verySlow,
  "slow": Speed.slow,
  "normal": Speed.normal,
  "fast": Speed.fast,
  "very fast": Speed.veryFast,
};
© www.soinside.com 2019 - 2024. All rights reserved.