小编the*_*ner的帖子

Typescript对象:如何将键限制为特定字符串?

我想创建一个类型的对象Partial,其中键将是'a','b'或'c'的某种组合.它不会有所有3个键(编辑:但它至少会有一个).如何在Typescript中强制执行此操作?这里有更多细节:

// I have this:
type Keys = 'a' | 'b' | 'c'

// What i want to compile:
let partial: Partial = {'a': true}
let anotherPartial: Partial = {'b': true, 'c': false}

// This requires every key:
type Partial = {
  [key in Keys]: boolean;
}

// This throws Typescript errors, says keys must be strings:
interface Partial = {
  [key: Keys]: boolean;
}
Run Code Online (Sandbox Code Playgroud)

我上面尝试过的两种方法(使用映射类型和接口)无法达到我想要的效果.有人可以帮忙吗?

javascript string key object typescript

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

向下转换数组长度和索引

我正在实施二进制搜索.该函数返回在数组中找到的目标值的索引,否则返回-1.

我更喜欢处理索引i32而不是usize我需要在-1找不到目标时允许返回的负数.我明确地在函数的边缘进行投射,我认为这不是很好.这有什么更生锈的方式?

fn binary_search(nums: &[i32], target: i32) -> i32 {
    let num_size: i32 = nums.len() as i32;            // This seems bad
    bsearch(nums, target, 0, num_size as usize)
}

fn bsearch(nums: &[i32], target: i32, lo: usize, hi: usize) -> i32 {
    if hi < lo {
        return -1;
    }

    let mid_idx = lo + ((hi - lo) / 2);
    let guess = nums[mid_idx];

    if guess > target {
        bsearch(nums, target, lo, mid_idx - …
Run Code Online (Sandbox Code Playgroud)

arrays types casting rust

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

标签 统计

arrays ×1

casting ×1

javascript ×1

key ×1

object ×1

rust ×1

string ×1

types ×1

typescript ×1