Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
8 lines
363 B
Plaintext
8 lines
363 B
Plaintext
type StringLiteral<Type> = Type extends string ? (string extends Type ? never : Type) : never;
|
|
declare const __OPAQUE_TYPE__: unique symbol;
|
|
export type WithOpaque<Token extends string> = {
|
|
readonly [__OPAQUE_TYPE__]: Token;
|
|
};
|
|
export type Opaque<Type, Token extends string> = Token extends StringLiteral<Token> ? Type & WithOpaque<Token> : never;
|
|
export {};
|