• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16interface inter <T>{
17	get value(): T;
18	set value(value: T): void;
19}
20
21class A <T>{}
22
23class B <T> extends A <T> implements inter <T> {
24	value: T;
25}
26
27class alpha {}
28class beta {}
29class gamma {}
30
31function foo(i: Partial<inter<alpha>>, a: Partial<A<beta>>): void {}
32
33
34function foa(b: Partial<B<gamma>>): void {
35	foo(b, b);
36}
37
38/* @@? 35:6 Error TypeError: Type 'Partial<B<gamma>>' is not compatible with type 'Partial<inter<alpha>>' at index 1 */
39/* @@? 35:2 Error TypeError: No matching call signature for foo(Partial<B<gamma>>, Partial<B<gamma>>) */
40