@@ -152,64 +152,93 @@ const fn1 = <P extends Params1>(params: P) => {
152152
153153};
154154
155+ const fn2 = <P extends Params1>({ foo, ...rest }: P) => {
156+ >fn2 : Symbol(fn2, Decl(dependentDestructuredRestVariables1.tsx, 56, 5))
157+ >P : Symbol(P, Decl(dependentDestructuredRestVariables1.tsx, 56, 13))
158+ >Params1 : Symbol(Params1, Decl(dependentDestructuredRestVariables1.tsx, 39, 1))
159+ >foo : Symbol(foo, Decl(dependentDestructuredRestVariables1.tsx, 56, 33))
160+ >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 56, 38))
161+ >P : Symbol(P, Decl(dependentDestructuredRestVariables1.tsx, 56, 13))
162+
163+ if (rest.tag === "a") {
164+ >rest.tag : Symbol(tag, Decl(dependentDestructuredRestVariables1.tsx, 43, 6), Decl(dependentDestructuredRestVariables1.tsx, 43, 35))
165+ >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 56, 38))
166+ >tag : Symbol(tag, Decl(dependentDestructuredRestVariables1.tsx, 43, 6), Decl(dependentDestructuredRestVariables1.tsx, 43, 35))
167+
168+ rest.type.toFixed(); // ok
169+ >rest.type.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
170+ >rest.type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 43, 16))
171+ >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 56, 38))
172+ >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 43, 16))
173+ >toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
174+
175+ return rest; // Omit<P, "foo">
176+ >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 56, 38))
177+ }
178+
179+ return undefined;
180+ >undefined : Symbol(undefined)
181+
182+ };
183+
155184// https://github.com/microsoft/TypeScript/issues/53947
156185
157186function ImageAvatar(props: { className?: string; src: string }) {
158- >ImageAvatar : Symbol(ImageAvatar, Decl(dependentDestructuredRestVariables1.tsx, 54 , 2))
159- >props : Symbol(props, Decl(dependentDestructuredRestVariables1.tsx, 58 , 21))
160- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 58 , 29))
161- >src : Symbol(src, Decl(dependentDestructuredRestVariables1.tsx, 58 , 49))
187+ >ImageAvatar : Symbol(ImageAvatar, Decl(dependentDestructuredRestVariables1.tsx, 63 , 2))
188+ >props : Symbol(props, Decl(dependentDestructuredRestVariables1.tsx, 67 , 21))
189+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 67 , 29))
190+ >src : Symbol(src, Decl(dependentDestructuredRestVariables1.tsx, 67 , 49))
162191
163192 return null;
164193}
165194
166195function InitialsAvatar(props: { className?: string; name: string }) {
167- >InitialsAvatar : Symbol(InitialsAvatar, Decl(dependentDestructuredRestVariables1.tsx, 60 , 1))
168- >props : Symbol(props, Decl(dependentDestructuredRestVariables1.tsx, 62 , 24))
169- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 62 , 32))
170- >name : Symbol(name, Decl(dependentDestructuredRestVariables1.tsx, 62 , 52))
196+ >InitialsAvatar : Symbol(InitialsAvatar, Decl(dependentDestructuredRestVariables1.tsx, 69 , 1))
197+ >props : Symbol(props, Decl(dependentDestructuredRestVariables1.tsx, 71 , 24))
198+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 71 , 32))
199+ >name : Symbol(name, Decl(dependentDestructuredRestVariables1.tsx, 71 , 52))
171200
172201 return null;
173202}
174203
175204type AvatarProps =
176- >AvatarProps : Symbol(AvatarProps, Decl(dependentDestructuredRestVariables1.tsx, 64 , 1))
205+ >AvatarProps : Symbol(AvatarProps, Decl(dependentDestructuredRestVariables1.tsx, 73 , 1))
177206
178207 | { type: "image"; src: string; className: string }
179- >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 67 , 5))
180- >src : Symbol(src, Decl(dependentDestructuredRestVariables1.tsx, 67 , 20))
181- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 67 , 33))
208+ >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 76 , 5))
209+ >src : Symbol(src, Decl(dependentDestructuredRestVariables1.tsx, 76 , 20))
210+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 76 , 33))
182211
183212 | { type: "initials"; name: string; className: string };
184- >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 68 , 5))
185- >name : Symbol(name, Decl(dependentDestructuredRestVariables1.tsx, 68 , 23))
186- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 68 , 37))
213+ >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 77 , 5))
214+ >name : Symbol(name, Decl(dependentDestructuredRestVariables1.tsx, 77 , 23))
215+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 77 , 37))
187216
188217const Avatar = ({ type, className, ...rest }: AvatarProps) => {
189- >Avatar : Symbol(Avatar, Decl(dependentDestructuredRestVariables1.tsx, 70 , 5))
190- >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 70 , 17))
191- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 70 , 23))
192- >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 70 , 34))
193- >AvatarProps : Symbol(AvatarProps, Decl(dependentDestructuredRestVariables1.tsx, 64 , 1))
218+ >Avatar : Symbol(Avatar, Decl(dependentDestructuredRestVariables1.tsx, 79 , 5))
219+ >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 79 , 17))
220+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 79 , 23))
221+ >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 79 , 34))
222+ >AvatarProps : Symbol(AvatarProps, Decl(dependentDestructuredRestVariables1.tsx, 73 , 1))
194223
195224 if (type === "image") {
196- >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 70 , 17))
225+ >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 79 , 17))
197226
198227 return <ImageAvatar className={className} {...rest} />;
199- >ImageAvatar : Symbol(ImageAvatar, Decl(dependentDestructuredRestVariables1.tsx, 54 , 2))
200- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 72 , 23))
201- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 70 , 23))
202- >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 70 , 34))
228+ >ImageAvatar : Symbol(ImageAvatar, Decl(dependentDestructuredRestVariables1.tsx, 63 , 2))
229+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 81 , 23))
230+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 79 , 23))
231+ >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 79 , 34))
203232 }
204233
205234 if (type === "initials") {
206- >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 70 , 17))
235+ >type : Symbol(type, Decl(dependentDestructuredRestVariables1.tsx, 79 , 17))
207236
208237 return <InitialsAvatar className={className} {...rest} />;
209- >InitialsAvatar : Symbol(InitialsAvatar, Decl(dependentDestructuredRestVariables1.tsx, 60 , 1))
210- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 76 , 26))
211- >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 70 , 23))
212- >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 70 , 34))
238+ >InitialsAvatar : Symbol(InitialsAvatar, Decl(dependentDestructuredRestVariables1.tsx, 69 , 1))
239+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 85 , 26))
240+ >className : Symbol(className, Decl(dependentDestructuredRestVariables1.tsx, 79 , 23))
241+ >rest : Symbol(rest, Decl(dependentDestructuredRestVariables1.tsx, 79 , 34))
213242 }
214243
215244 throw new Error("");
0 commit comments