相关疑难解决方法(0)

目前是否有将两个或多个字符串文字类型连接到 TypeScript 中的单个字符串文字类型的方法?

首先,让我说清楚我正在寻找的不是联合类型,而是直接连接,即"Hel" + "lo" = "Hello"字符串文字类型

本质上,我有一个函数,它接受两个字符串文字 anamespace和 a name,并将它们与中间的 / 组合作为输出,但我无法找到一种方法使输出成为字符串文字而不是通用字符串。

我需要它是一个字符串文字,因为输出将用作对象的键。

我试过输入intersections( &), +,.concat()

function makeKey<NS extends string, N extends string>(namespace: NS, name: N) {
    return namespace + '/' + name; // <- want this to be `NS + / + N` = `NS/N`
}
// I want this to return a string literal rather than a generic string

const objKey = makeKey('admin', 'home')
// I want typeof objKey to be …
Run Code Online (Sandbox Code Playgroud)

javascript string types function typescript

30
推荐指数
2
解决办法
6878
查看次数

TypeScript 将通用对象从蛇形转换为驼色盒

我想编写一个函数,该函数接受带有蛇形大小写键的对象并将其转换为带有驼色大小写键的对象。假设我们知道输入对象的类型,但希望解决方案是通用的,那么在 TypeScript 中输入此类函数的最佳方式是什么?

type InputType = {
  snake_case_key_1: number,
  snake_case_key_2: string,
  ...
}

function snakeToCamelCase(object: T): U {
  ...
}
Run Code Online (Sandbox Code Playgroud)

键入TU.

我想U尽可能窄地键入,并且理想地U基于的类型T

理想情况下,如果T是我的示例,InputType我希望将 U 输入为

{
  snakeCaseKey1: number,
  snakeCaseKey2: string,
  ...
}
Run Code Online (Sandbox Code Playgroud)

typescript

12
推荐指数
3
解决办法
2737
查看次数

是否可以在 Typescript 中使用映射类型来更改类型键名称?

我有大量从 proto 文件生成的打字稿类型。这些类型的属性是驼峰式的,我的 proto 文件(和 api)是蛇形的。

我想避免将我的 api 数据转换为驼峰格式以满足我的类型约束。我试图找出一种使用映射类型将类型键从骆驼更改为蛇案例的方法。

例如:

生成类型

type g = {
    allTheNames: string
}

type SnakePerson = {
    firstName: string
    lastName: string
    name: g
Run Code Online (Sandbox Code Playgroud)

所需类型

{
  first_name: string
  last_name: string
  g: { all_the_names: string }
}
Run Code Online (Sandbox Code Playgroud)

我进行了尝试,但我对打字稿和映射类型相当陌生

type ToSnakeCase<K extends string, T> = {
  [snakeCase([P in K])]: T[P]
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,包括告诉我这是不可能的,都将不胜感激。

typescript

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

标签 统计

typescript ×3

function ×1

javascript ×1

string ×1

types ×1