首页 > 其他分享 >ts的4.9属性之satisfies

ts的4.9属性之satisfies

时间:2023-05-11 10:46:59浏览次数:33  
标签:blue palette 4.9 ts number Record satisfies red

interface Palette {
    red: number[];
    green: string;
    blue: number[];
    black?: boolean;
}

type Colors = 'red' | 'green' | 'blue';
type RGB = [number, number, number];

const palette = {
    red: [255, 0, 0],
    green: '#00ff00',
    blue: [0, 0, 255]
} satisfies Record<Colors, RGB | string> as Palette;

// 当使用 as Record<Colors, RGB | string>; 时,推断不出属性的具体类型,当使用 satisfies Record<Colors, RGB | string>时,可以推断具体类型
palette.green.startsWith('#'); // √ boolean
palette.red.find((x) => true); // × 类型“number[]”上不存在属性“startsWith”。
palette.blue.entries(); // √

const config = {
    name: 'app-1',
    version: '2.0',
    service: 'users'
} satisfies Record<string, string>;

// const config:Record<string, string> 这样的写法无法在调用属性的时候获取自动提示,satisfies的话可以让系统自动推断类型
config.name = '123';

 

标签:blue,palette,4.9,ts,number,Record,satisfies,red
From: https://www.cnblogs.com/llcdbk/p/17390345.html

相关文章

  • How to ensure all the deposits to exchange accounts are reflected properly?
    Accounts,includingexchangeaccounts,canreceivefundsintwoways:an“external”,or“top-level”transfer(eg.iff1XXXsendsamessagetof1ZZZthattransfers1FIL),and“internal”transfers”thatresultfromasubinvocation.Anexampleof“inter......
  • spring aop MethodSignature = (MethodSignature) joinPoint.getSignature();
    MethodSignaturesignature=(MethodSignature)joinPoint.getSignature();为什么这里可以转回为MethodSignatrue,官网上没有这么说,如果这里转换失败,那运行会报错,这是不允许的。必须找到调用这里的代码,看看这里的Signature 是怎么放进去的。网上找了好久没有找到相关知识......
  • CUDA已经安装但nvcc -V显示command not found(Ubuntu20.04LTS系统)
    背景介绍安装了NVIDIA驱动程序,同时也安装了CUDA,但使用nvcc-V命令提示不存在,如下所示:1Command'nvcc'notfound,butcanbeinstalledwith:2sudoaptinstallnvidia-cuda-toolkit知识补充:为什么要使用nvcc命令?使用nvcc-V命令可以查看CUDA的版本,如下所示为正常的输入......
  • ubuntu apt 安装报错:Media change: please insert the disc labeled 'Ubuntu 20.04.5
    前言如果你在Ubuntu上使用apt安装软件包时遇到"Mediachange:pleaseinsertthedisclabeled..."的错误消息,这通常是因为apt源列表中包含CD/DVD源,但你的系统中没有插入相应的安装介质(CD或DVD)。解决检查/etc/apt/sources.list文件中,是否出现CD/DVD源。类似d......
  • netstat
    DisplaysprotocolstatisticsandcurrentTCP/IPnetworkconnections.NETSTAT[-a][-b][-e][-f][-n][-o][-pproto][-r][-s][-t][-x][-y][interval]-aDisplaysallconnectionsandlisteningports.-bDisplaystheexecutab......
  • Stable Diffusion 反向提示词 Negative prompts
    反向提示词(Negativeprompts)用于描述图片中不希望出现的内容。常用于阻止生成特定的事物、样式或修复某些图像异常。下面是一些例子从“宁静的精灵森林”中移除“苔藓”宁静的精灵森林peacefulelvenforest,thickforest,largelivingtreesarevisibleinthebackgro......
  • bitsandbytes--Facebook 推出 8 比特优化器大大减少显存
    “小夕,小夕!又出来了个SOTA模型!赶紧follow!”小夕看了看新模型的参数量,然后看了看实验室服务器的几张小破卡。小夕,陷入了沉默。自从人们发现越大的模型性能越好后,神经网络模型的参数量就在越来越大的道路上一去不复返了。从XX-large到GPT3,再到5300亿参数的MegatronTur......
  • tinyriscv——gp寄存器/riscv-tests的变化
    在RISC-V中,gp寄存器是全局指针(GlobalPointer)寄存器,用于存储全局数据区(.data和.sdata段)的地址。在程序启动时,该寄存器会被设置为一个固定的值,通常为__global_pointer$的地址,表示全局指针的起始地址。在一些情况下,可以通过修改该寄存器的值来实现一些特定的功能。在常见的......
  • struts2 jpg文件上传失败 Content-Type not allowed 解决方案
    org.apache.struts2.interceptor.FileUploadInterceptor-Content-Typenotallowed:upload"upload__75549ca5_1239ddc5ce6__8000_00000161.tmp"image/pjpeg原有配置:用ext+struts2上传时一直显示进度条不消失:Java代码<actionname="xxxAction"cla......
  • PMP工具与技术-4.9-1 规划采购管理工具与技术
    ##############################################################上一章,我们写了关于规划采购过程中的文件内容,包括合同类型选择、采购管理计划、采购策略、招标文件、采购工作说明书(SOW)等内容。这一章主要说明规划采购管理过程中适用的工具。###############################......