浏览代码

ts: allow nullable types for option fields (#1428)

Daniel Marin 3 年之前
父节点
当前提交
3838bdeaf0
共有 2 个文件被更改,包括 5 次插入1 次删除
  1. 4 0
      CHANGELOG.md
  2. 1 1
      ts/src/program/namespace/types.ts

+ 4 - 0
CHANGELOG.md

@@ -11,6 +11,10 @@ incremented for features.
 
 
 ## [Unreleased]
 ## [Unreleased]
 
 
+### Fixes
+
+* ts: Allow nullable types for `Option<T>` mapped types ([#1428](https://github.com/project-serum/anchor/pull/1428)).
+
 ### Breaking
 ### Breaking
 
 
 * lang: Enforce that the payer for an init-ed account be marked `mut` ([#1271](https://github.com/project-serum/anchor/pull/1271)).
 * lang: Enforce that the payer for an init-ed account be marked `mut` ([#1271](https://github.com/project-serum/anchor/pull/1271)).

+ 1 - 1
ts/src/program/namespace/types.ts

@@ -107,7 +107,7 @@ export type DecodeType<T extends IdlType, Defined> = T extends keyof TypeMap
   : T extends { option: { defined: keyof Defined } }
   : T extends { option: { defined: keyof Defined } }
   ? Defined[T["option"]["defined"]] | null
   ? Defined[T["option"]["defined"]] | null
   : T extends { option: keyof TypeMap }
   : T extends { option: keyof TypeMap }
-  ? TypeMap[T["option"]]
+  ? TypeMap[T["option"]] | null
   : T extends { vec: keyof TypeMap }
   : T extends { vec: keyof TypeMap }
   ? TypeMap[T["vec"]][]
   ? TypeMap[T["vec"]][]
   : T extends { array: [defined: keyof TypeMap, size: number] }
   : T extends { array: [defined: keyof TypeMap, size: number] }