インターフェースとはどんなものか勉強しているのですが、
以下の as 演算子の使い方はなぜいけないのでしょうか?

type
 ITestData = interface
  ['{BBF2BE95-FEE5-4CC2-9CEF-9C83E29BF234}']
  function GetColumnText(Index: Integer): string;
  property ColumnText[Index: Integer]: string read GetColumnText; default;
 end;


 TTestComponent = class(TComponent, ITestData)
 private
  function GetColumnText(Index: Integer): string;
 public
  property ColumnText[Index: Integer]: string read GetColumnText; default;
 end;

implementation

function TTestComponent.GetColumnText(Index: Integer): string;
begin
 Result := 'Column_' + IntToStr(Index);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 TestIntf: ITestData;
 TestComp: TTestComponent;
begin
 TestComp := TTestComponent.Create(nil);
 TestIntf := (TestComp as ITestData);    // ← だめ
end;